using System;

namespace VOL.Entity.DomainModels
{
    /// <summary>
    /// 货品批次与库存联查DTO
    /// </summary>
    public class GoodsBatchInventoryDto
    {
        /// <summary>
        /// 批次ID
        /// </summary>
        public long BatchId { get; set; }

        /// <summary>
        /// 批次号
        /// </summary>
        public string BatchNo { get; set; }

        /// <summary>
        /// 货品ID
        /// </summary>
        public long GoodsId { get; set; }

        /// <summary>
        /// 货品编号
        /// </summary>
        public string GoodsCode { get; set; }

        /// <summary>
        /// 货品名称
        /// </summary>
        public string GoodsName { get; set; }

        /// <summary>
        /// 仓库ID
        /// </summary>
        public long WarehouseId { get; set; }

        /// <summary>
        /// 仓库编号
        /// </summary>
        public string WarehouseCode { get; set; }

        /// <summary>
        /// 仓库名称
        /// </summary>
        public string WarehouseName { get; set; }

        /// <summary>
        /// 批次数量（来自批次表）
        /// </summary>
        public int BatchQuantity { get; set; }

        /// <summary>
        /// 当前库存数量（来自库存表）
        /// </summary>
        public int? CurrentQty { get; set; }

        /// <summary>
        /// 生产日期
        /// </summary>
        public DateTime? ProductionDate { get; set; }

        /// <summary>
        /// 过期日期（批次表）
        /// </summary>
        public DateTime? BatchExpireDate { get; set; }

        /// <summary>
        /// 过期日期（库存表）
        /// </summary>
        public DateTime? InventoryExpireDate { get; set; }

        /// <summary>
        /// 库存上限
        /// </summary>
        public int? UpperLimit { get; set; }

        /// <summary>
        /// 库存下限
        /// </summary>
        public int? LowerLimit { get; set; }

        /// <summary>
        /// 批次备注
        /// </summary>
        public string BatchRemark { get; set; }

        /// <summary>
        /// 库存备注
        /// </summary>
        public string InventoryRemark { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime? CreateDate { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        public string Creator { get; set; }

        /// <summary>
        /// 是否即将过期（30天内）
        /// </summary>
        public bool IsExpiringSoon { get; set; }

        /// <summary>
        /// 是否低于库存下限
        /// </summary>
        public bool IsBelowLowerLimit { get; set; }

        /// <summary>
        /// 是否高于库存上限
        /// </summary>
        public bool IsAboveUpperLimit { get; set; }

        /// <summary>
        /// 数据状态（批次与库存是否匹配）
        /// </summary>
        public string DataStatus { get; set; }
    }
}

